# 这是一个单行注释，声明一个变量并赋值

my_name = 'TOM'

'''
这是一个多行注释
不被工具推荐使用的方式，如果前面有有效的Python语句，又可以正常显示绿色，搞不明白
'''

"""
这同样是一个多行注释
怎么是绿色
"""
# 这是来自第三行的变量，是为了 不然第五行的单引号多行注释提示警告才把变量定义放到前面
print(my_name)
####################################################################################################
# 命名规范
# 1. 变量名只能是字母、数字或下划线的任意组合
# 2. 变量名的第一个字符不能是数字
# 3. 关键字不能声明为变量名，常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for',
 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try',
 'while', 'with', 'yield']

# 错误示范如下：
# *a = 123
# $b = 456
# c$=789

# _name = 'lili'
# 123 = 'lili'
# and =123
# 年龄 = 18  # 强烈建议不要使用中文命名

# 正确示范如下
age_of_jason = 31
page1 = '首页'
_class = '终极一班'

# 风格一：驼峰体
AgeOfTony = 56
NumberOfStudents = 80
# 风格二：纯小写下划线(在python中，变量名的命名推荐使用该风格)
age_of_tony = 56
number_of_students = 80
####################################################################################################
# 变量的三大特性
# 1、id
# 反应的是变量在内存中的唯一编号，内存地址不同id肯定不同
# 注意事项
# id()函数无法保证内存地址具有稳定性，不同运行条件下可能具有不同的内存地址。因此不应该依赖内存地址来比较对象是否相等，应该使用==运算符。
# id()函数返回的内存地址通常是 CPython 实现的内存地址，其它 Python 实现可能返回不同的内存地址。
# id()函数返回的内存地址通常是一串十进制整数，但在一些特殊情况下（如PyPy3）可能返回一串十六进制字符串，应注意进行判断。

# 2、type 变量值的类型

# 3、value
# 变量值
x = 'Info Tony:18'
print(id(x),type(x),x)

# 该程序显示各种id
str1 = "geek"
print(id(str1))

str2 = "geek"
print(id(str2))

# 这将返回True
print(id(str1) == id(str2))

# 在list中使用
list1 = ["aakash", "priya", "abdul"]
print(id(list1[0]))
print(id(list1[2]))

# 这返回false
print(id(list1[0]) == id(list1[2]))